//
//  Status.h
//  TwitterPlane
//
//  Created by kazuyuki takahashi on 10/01/16.
//  Copyright 2010 by invisibledesigner.com. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import "User.h"

/**
 * ステータスを表すモデルクラス
 * 不変クラス。
 */
@interface Status : NSObject {
 @private
    NSString *text_;
    User *user_;
    NSString *statusID_;
    NSDate *updatedDate_;
    NSDate *receivedDate_;
    NSString *retweeter_;
}

@property (readonly) NSString *text;
@property (readonly) User *user;
@property (readonly) NSString *statusID;     //ID
@property (readonly) NSDate *updatedDate;   //twitされた日時
@property (readonly) NSDate *receivedDate;  //ステータスの受信日時
@property (readonly) NSString *retweeter;

+ (NSString*)statusIDWithDictionary:(NSDictionary*)dic;

/**
 * statusIDを比較するためのcomparator
 */
+ (NSComparator)statusIDComparator;

/**
 * Dictionaryでオブジェクトを初期化。
 * Dictionaryの内容はMGTwitterEngineDelegateのメソッドに帰ってくるもの
 * Dictionaryの内容が正しくなければnilを返す
 */
- (id)initWithDictionary:(NSDictionary*)dic;

@end
